package com.alks.function.mapper.finance.lotcost;

import com.alks.function.data.request.finance.lotcost.LotCostRequest;
import com.alks.function.data.vo.finance.lotcost.*;
import com.alks.function.data.vo.finance.lotcost.h5.LotCostAnalysisDetailH5VO;
import com.alks.function.data.vo.finance.lotcost.h5.LotCostAnalysisListH5VO;
import com.alks.function.data.vo.finance.lotcost.h5.LotCostAnalysisStatisticH5VO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @author: chen
 * @date: 2024/12/20
 * @description: 指令成本分析
 */
@Mapper
public interface LotCostAnalysisMapper {

    /**
     * 查询列表数据
     * @param request
     * @return
     */
    List<LotCostAnalysisListVO> listPage(LotCostRequest request);

    /**
     * 查询详细数据
     * @param lotNo
     * @return
     */
    LotCostAnalysisDetailVO getDetail(@Param("lotNo") String lotNo);

    /**
     * 查询材料耗材列表
     * @param lotNo
     * @param mtlType
     * @param partName
     * @return
     */
    List<ReportMtlDetailVO> getCostDetail(@Param("lotNo") String lotNo, @Param("mtlType") String mtlType,
                                          @Param("partName") String partName);

    /**
     * 补单费用
     * @param lotNo
     * @return
     */
    List<SupplementDutyVO> getSupplementDutyDetail(@Param("lotNo") String lotNo);

    /**
     * 其他费用
     * @param lotNo
     * @return
     */
    List<OtherFeeVO> getOtherFeeDetail(@Param("lotNo") String lotNo);

    /**
     * 查询人工明细列表
     * @param lotNo
     * @return
     */
    List<ReportLaborDetailVO> getLaborDetail(@Param("lotNo") String lotNo, @Param("type") String type);

    /**
     * 查询人工明细列表 手工
     * @param lotNo
     * @return
     */
    List<ReportLaborDetailVO> getLaborDetail2(@Param("lotNo") String lotNo);

    /**
     * 查询人工明细列表 外协
     * @param lotNo
     * @return
     */
    List<ReportLaborDetailVO> getLaborDetail3(@Param("lotNo") String lotNo);

    /**
     * 查询列表数据
     * @param request
     * @return
     */
    List<LotCostAnalysisListH5VO> listPageForH5(LotCostRequest request);


    /**
     * 查询详细数据
     * @param lotNo
     * @return
     */
    LotCostAnalysisDetailH5VO getDetailForH5(@Param("lotNo") String lotNo);

    /**
     * 成本统计数据
     * @param lotNo
     * @return
     */
    LotCostAnalysisStatisticH5VO statisticForH5(String lotNo);
}
